using Microsoft.WowAddonStudio.Lua.RuntimeService.WowBench;

namespace Microsoft.WowAddonStudio.Lua.RuntimeService
{
	/// <summary>
	/// Defines a Factory which creates ICommandResolver instances.
	/// </summary>
	public interface IResolverFactory
	{
		/// <summary>
		/// Creates the command resolver.
		/// </summary>
		/// <returns></returns>
		ICommandResolver CreateCommandResolver();

		/// <summary>
		/// Creates the expression resolver.
		/// </summary>
		/// <returns></returns>
		ICommandResolver CreateExpressionResolver();

		/// <summary>
		/// Creates the resolver.
		/// </summary>
		/// <param name="resolverType">Type of the resolver.</param>
		/// <returns></returns>
		ICommandResolver CreateResolver(ResolverType resolverType);
	}
}